package com.dc.dao.impl;

import java.util.List;

import com.dc.dao.ProductTypeDao;
import com.dc.entity.ProductType;
import com.dc.tools.DBTools;
import com.dc.tools.PageData;

public class ProductTypeDaoImpl implements ProductTypeDao {

	// 增加餐品类型的方法
	@Override
	public boolean addProductType(ProductType producttype) {
		if (producttype != null) {
			// 定义增加的sql
			String sql = "insert into producttype values (null,?,?)";
			// 调用工具类
			int n = DBTools.exUpdate(sql, producttype.getTypename(), producttype.getTypeinfo());
			return n > 0;
		}
		return false;
	}

	// 删除餐品类型的方法
	@Override
	public boolean deleteProductType(int typeid) {
		// 定义删除的sql
		String sql = "delete from producttype where typeid = ?";
		// 调用工具
		int n = DBTools.exUpdate(sql, typeid);
		return n > 0;
	}

	// 修改餐品类型的方法
	@Override
	public boolean updateProductType(ProductType producttype) {
		if (producttype != null) {
			// 定义查询sql
			String sql = "update producttype set typename = ?,typeinfo = ? where typeid = ? ";
			// 调用工具
			int n = DBTools.exUpdate(sql, producttype.getTypename(), producttype.getTypeinfo(),producttype.getTypeid());
			return n > 0;
		}
		return false;
	}

	// 查询餐品类型的方法
	@Override
	public List<ProductType> selectProductTypeByLike(String keywords) {
		//定义查询sql
		String sql = "select * from producttype where typename like ?";
		List<ProductType> list =(List<ProductType>) DBTools.exQuery(sql, ProductType.class, "%"+keywords+"%");
		return list;
	}
	
	//精确查询餐品类型的方法，用于新增之前的判断
	@Override
	public ProductType selectProductTypeByName(String typename) {
		//定义查询sql
		String sql = "select * from producttype where typename = ?";
		List<ProductType> list =(List<ProductType>) DBTools.exQuery(sql, ProductType.class, typename);
		if(list.size() == 0) {
			return null;
		}
		return list.get(0);
	}
	
	//分页查询
	@Override
	public PageData<ProductType> selectProductTypeByPage(int page, int pageSize, String keywords) {
		//定义sql
		String sql = "select * from producttype where typename like ?";
		//调用工具中分页查询的方法
		PageData<ProductType> pd = DBTools.exQueryByPage(sql, ProductType.class, page, pageSize, "%"+keywords+"%");
		return pd;
	}
	
	//按照类型编号查询，用于删除类型的时候拿到这个类型做判断
	@Override
	public List<ProductType> selectProductTypeById(int typeid) {
		//定义sql
		String sql = "select * from producttype where typeid = ?";
		//调用工具中分页查询的方法
		List<ProductType> list =(List<ProductType>) DBTools.exQuery(sql, ProductType.class, typeid);
		return list;
	}

}
